Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling
- Publicatiedatum:
- 08-09-2026
- Inwerkingtreding:
- 09-09-2026
18.2 Wat is de winst- en verliesrekening o.b.v. Grootboek?
Concepten
Relaties
Eigenschappen
SPARQL query
Code gekopieerd
...Kopieer naar klembord
1# Indicator: Zorgkantoren-inkoop 18.2 2# Canonical id: [monorepo_id] - "Wat is de winst- en verliesrekening o.b.v. Grootboek?" 3# Parameters: ?startperiode, ?eindperiode 4# Ontologie: versie 3.0.0 of nieuwer 5 6PREFIX onz-fin: <http://purl.org/ozo/onz-fin#> 7PREFIX onz-g: <http://purl.org/ozo/onz-g#> 8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 9 10SELECT 11?jaarrekeningpost 12(IF(SUM(?heeftData)>0, SUM(?bedrag_rubriek), "Niet beschikbaar") AS ?bedrag) 13WHERE 14{ 15 { 16 # ================================================================ 17 # DEEL 1: Berekening eindtotalen P, Q, R, S uit ruwe grootboekdata 18 ## deze berekening lijkt misschien overbodig omdat je ook de subposten uit deel 2 zou kunnen optellen, 19 ## alleen die kunnen theoretisch leeg zijn wat tot reken problemen leidt. Vandaar deze pragmatische keuze 20 # ================================================================ 21 { 22 # Bereken alle componentbedragen in één database scan voor performance 23 SELECT 24 (SUM(?p_bedrag) AS ?p_totaal) # P Som der bedrijfsopbrengsten 25 (SUM(?q_bedrag) AS ?q_totaal) # Q Som der bedrijfslasten 26 (SUM(?r_bedrag) AS ?r_totaal) # R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten 27 (SUM(?s_bedrag) AS ?s_totaal) # S.I Belastingen 28 29 (SUM(?p_flag) AS ?p_has_data) 30 (SUM(?q_flag) AS ?q_has_data) 31 (SUM(?r_flag) AS ?r_has_data) 32 (SUM(?s_flag) AS ?s_has_data) 33 WHERE { 34 #BIND("2024-01-01"^^xsd:date AS ?startperiode) 35 #BIND("2024-12-31"^^xsd:date AS ?eindperiode) 36 37 # Koppel grootboekposten aan rubrieken binnen meetperiode 38 ?grootboek_post a onz-fin:Grootboekpost ; 39 onz-g:partOf ?rubriek ; 40 onz-g:hasDate ?datum ; 41 onz-fin:heeftGeldBedrag ?geld_bedrag . 42 43 # Match directe ouder: Grootboekrekening (RGS) of Grootboekrubriek (Prismant) 44 { 45 { ?rubriek a onz-fin:Grootboekrekening } 46 UNION 47 { ?rubriek a onz-fin:Grootboekrubriek } 48 } 49 # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors) 50 FILTER NOT EXISTS { 51 ?grootboek_post onz-g:partOf ?child . 52 ?child onz-g:partOf ?rubriek . 53 FILTER(?child != ?rubriek) 54 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 55 } 56 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 57 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 58 59 FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode) 60 61 # Parameters voor building block winst_verlies_posten.rq 62 63 # >>> START BB: BB-005_winst_verlies_posten.rq 64 # ============================================================================= 65 # Totaal-niveau: P, Q, R, S 66 # ============================================================================= 67 68 # --- P: Som der bedrijfsopbrengsten --- 69 # Prismant: P.I=81, P.IV=82/83/89/919/920/930 70 # RGS: P.I=WOmz/WBat, P.II = WWiv minus WWivGvp, III=WWivGvp, P.IV=WOvb 71 # voor de som P volstaat het om WWiv hier te zetten want zo wordt WWivGvp ook maar 1x geteld. 72 BIND( 73 IF( 74 STRSTARTS(?rubriekCode, "81") || 75 STRSTARTS(?rubriekCode, "82") || 76 STRSTARTS(?rubriekCode, "83") || 77 STRSTARTS(?rubriekCode, "89") || 78 STRSTARTS(?rubriekCode, "919") || 79 STRSTARTS(?rubriekCode, "920") || 80 STRSTARTS(?rubriekCode, "930") || 81 STRSTARTS(?rubriekCode, "WOmz") || 82 STRSTARTS(?rubriekCode, "WBat") || 83 STRSTARTS(?rubriekCode, "WWiv") || 84 STRSTARTS(?rubriekCode, "WOvb"), 85 ?geld_bedrag, 0) AS ?p_bedrag 86 ) 87 88 # --- Q: Som der bedrijfslasten --- 89 # Q.I RGS: WKpr minus WKprKuw 90 # Q.II: 417/418 (Kosten uitbesteed werk en andere externe kosten), RGS: WKprKuw 91 # Q.III: 411-419 (Lonen en salarissen), RGS: WPer minus WPerSol minus WPerPen 92 # Q.IV: 420/4221/4223-4225/4229 (Sociale lasten), RGS: WPerSol 93 # Q.V: 4226 (Pensioenlasten), RGS: WPerPen 94 # Q.VI: 480-484 (Afschrijvingen op immateriële vaste activa en materiële vaste activa), RGS: WAfs 95 # Q.VII: RGS: WWvi 96 # Q.VIII: RGS: WBwv 97 # Q.IX: 423/43-47/486/489/905/911-915/921/931 (Overige bedrijfskosten), RGS: WBed 98 # ook hier volstaat het voor de som van Q om alleen WPer te noemen zodat WPerSol en WPerPen niet dubbel geteld worden 99 BIND( 100 IF( 101 STRSTARTS(?rubriekCode, "417") || 102 STRSTARTS(?rubriekCode, "418") || 103 STRSTARTS(?rubriekCode, "411") || 104 STRSTARTS(?rubriekCode, "412") || 105 STRSTARTS(?rubriekCode, "413") || 106 STRSTARTS(?rubriekCode, "414") || 107 STRSTARTS(?rubriekCode, "415") || 108 STRSTARTS(?rubriekCode, "416") || 109 STRSTARTS(?rubriekCode, "419") || 110 STRSTARTS(?rubriekCode, "420") || 111 STRSTARTS(?rubriekCode, "4221") || 112 STRSTARTS(?rubriekCode, "4223") || 113 STRSTARTS(?rubriekCode, "4224") || 114 STRSTARTS(?rubriekCode, "4225") || 115 STRSTARTS(?rubriekCode, "4229") || 116 STRSTARTS(?rubriekCode, "4226") || 117 STRSTARTS(?rubriekCode, "480") || 118 STRSTARTS(?rubriekCode, "481") || 119 STRSTARTS(?rubriekCode, "482") || 120 STRSTARTS(?rubriekCode, "483") || 121 STRSTARTS(?rubriekCode, "484") || 122 STRSTARTS(?rubriekCode, "423") || 123 STRSTARTS(?rubriekCode, "43") || 124 STRSTARTS(?rubriekCode, "44") || 125 STRSTARTS(?rubriekCode, "45") || 126 STRSTARTS(?rubriekCode, "46") || 127 STRSTARTS(?rubriekCode, "47") || 128 STRSTARTS(?rubriekCode, "486") || 129 STRSTARTS(?rubriekCode, "489") || 130 STRSTARTS(?rubriekCode, "905") || 131 STRSTARTS(?rubriekCode, "911") || 132 STRSTARTS(?rubriekCode, "912") || 133 STRSTARTS(?rubriekCode, "913") || 134 STRSTARTS(?rubriekCode, "914") || 135 STRSTARTS(?rubriekCode, "915") || 136 STRSTARTS(?rubriekCode, "921") || 137 STRSTARTS(?rubriekCode, "931") || 138 STRSTARTS(?rubriekCode, "WKpr") || 139 STRSTARTS(?rubriekCode, "WPer") || 140 STRSTARTS(?rubriekCode, "WAfs") || 141 STRSTARTS(?rubriekCode, "WWvi") || 142 STRSTARTS(?rubriekCode, "WBwv") || 143 STRSTARTS(?rubriekCode, "WBed"), 144 ?geld_bedrag, 0) AS ?q_bedrag 145 ) 146 147 # --- R: Financiële baten en lasten --- 148 # Prismant: R.I=904, R.II=900, R.III=903, R.IV=485/901 149 # RGS: R.I=WOvt, R.II=WFbeRlm, R.III=WWfa, R.IV=WFbe minus WFbeRlm 150 # voor de som R volstaat het om WFbe hier te zetten want zo wordt WFbeRlm ook maar 1x geteld. 151 BIND( 152 IF( 153 STRSTARTS(?rubriekCode, "904") || 154 STRSTARTS(?rubriekCode, "900") || 155 STRSTARTS(?rubriekCode, "903") || 156 STRSTARTS(?rubriekCode, "485") || 157 STRSTARTS(?rubriekCode, "901") || 158 STRSTARTS(?rubriekCode, "WOvt") || 159 STRSTARTS(?rubriekCode, "WWfa") || 160 STRSTARTS(?rubriekCode, "WFbe"), 161 ?geld_bedrag, 0) AS ?r_bedrag 162 ) 163 164 # --- S: Belastingen en resultaat deelnemingen --- 165 # Prismant: S.II=902 166 # RGS: S.I=WBel, S.II=WRed 167 BIND( 168 IF( 169 STRSTARTS(?rubriekCode, "902") || 170 STRSTARTS(?rubriekCode, "WBel") || 171 STRSTARTS(?rubriekCode, "WRed"), 172 ?geld_bedrag, 0) AS ?s_bedrag 173 ) 174 175 # ============================================================================= 176 # Detail-niveau: P.I t/m S.II 177 # ============================================================================= 178 179 # --- P.I Netto omzet --- 180 # Prismant: 81, RGS: WOmz/WBat 181 BIND( 182 IF( 183 STRSTARTS(?rubriekCode, "81") || 184 STRSTARTS(?rubriekCode, "WOmz") || 185 STRSTARTS(?rubriekCode, "WBat"), 186 ?geld_bedrag, 0 187 ) AS ?p_i_bedrag 188 ) 189 190 # --- P.II Wijziging in voorraden --- 191 # RGS: WWiv minus WWivGpv (Prismant: niet beschikbaar) 192 BIND(IF(STRSTARTS(?rubriekCode, "WWiv"), ?geld_bedrag, 0) AS ?p_ii_plus_bedrag) 193 BIND(IF(STRSTARTS(?rubriekCode, "WWivGpv"), ?geld_bedrag, 0) AS ?p_ii_min_bedrag) 194 195 # --- P.III Geactiveerde productie voor het eigen bedrijf --- 196 # RGS: WWivGpv (Prismant: niet beschikbaar) 197 BIND(IF(STRSTARTS(?rubriekCode, "WWivGpv"), ?geld_bedrag, 0) AS ?p_iii_bedrag) 198 199 # --- P.IV Overige bedrijfsopbrengsten --- 200 # Prismant: 82/83/89/919/920/930, RGS: WOvb 201 BIND( 202 IF( 203 STRSTARTS(?rubriekCode, "82") || 204 STRSTARTS(?rubriekCode, "83") || 205 STRSTARTS(?rubriekCode, "89") || 206 STRSTARTS(?rubriekCode, "919") || 207 STRSTARTS(?rubriekCode, "920") || 208 STRSTARTS(?rubriekCode, "930") || 209 STRSTARTS(?rubriekCode, "WOvb"), 210 ?geld_bedrag, 0 211 ) AS ?p_iv_bedrag 212 ) 213 214 # --- Q.I Kosten van grond- en hulpstoffen --- 215 # RGS: WKpr minus WKprKuw (Prismant: niet beschikbaar) 216 BIND(IF(STRSTARTS(?rubriekCode, "WKpr"), ?geld_bedrag, 0) AS ?q_i_plus_bedrag) 217 BIND(IF(STRSTARTS(?rubriekCode, "WKprKuw"), ?geld_bedrag, 0) AS ?q_i_min_bedrag) 218 219 # --- Q.II Kosten uitbesteed werk en andere externe kosten --- 220 # Prismant: 417/418, RGS: WKprKuw 221 BIND( 222 IF( 223 STRSTARTS(?rubriekCode, "417") || 224 STRSTARTS(?rubriekCode, "418") || 225 STRSTARTS(?rubriekCode, "WKprKuw"), 226 ?geld_bedrag, 0 227 ) AS ?q_ii_bedrag 228 ) 229 230 # --- Q.III Lonen en salarissen --- 231 # Prismant: 411-419, RGS: WPer minus WPerSol minus WPerPen 232 BIND( 233 IF( 234 STRSTARTS(?rubriekCode, "411") || 235 STRSTARTS(?rubriekCode, "412") || 236 STRSTARTS(?rubriekCode, "413") || 237 STRSTARTS(?rubriekCode, "414") || 238 STRSTARTS(?rubriekCode, "415") || 239 STRSTARTS(?rubriekCode, "416") || 240 STRSTARTS(?rubriekCode, "419") || 241 STRSTARTS(?rubriekCode, "WPer"), 242 ?geld_bedrag, 0 243 ) AS ?q_iii_bedrag 244 ) 245 BIND( 246 IF( 247 STRSTARTS(?rubriekCode, "WPerSol") || 248 STRSTARTS(?rubriekCode, "WPerPen"), 249 ?geld_bedrag, 0 250 ) AS ?q_iii_min_bedrag 251 ) 252 253 # --- Q.IV Sociale lasten --- 254 # Prismant: 420/4221/4223-4225/4229, RGS: WPerSol 255 BIND( 256 IF( 257 STRSTARTS(?rubriekCode, "420") || 258 STRSTARTS(?rubriekCode, "4221") || 259 STRSTARTS(?rubriekCode, "4223") || 260 STRSTARTS(?rubriekCode, "4224") || 261 STRSTARTS(?rubriekCode, "4225") || 262 STRSTARTS(?rubriekCode, "4229") || 263 STRSTARTS(?rubriekCode, "WPerSol"), 264 ?geld_bedrag, 0 265 ) AS ?q_iv_bedrag 266 ) 267 268 # --- Q.V Pensioenlasten --- 269 # Prismant: 4226, RGS: WPerPen 270 BIND( 271 IF( 272 STRSTARTS(?rubriekCode, "4226") || 273 STRSTARTS(?rubriekCode, "WPerPen"), 274 ?geld_bedrag, 0 275 ) AS ?q_v_bedrag 276 ) 277 278 # --- Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa --- 279 # Prismant: 480-484, RGS: WAfs 280 BIND( 281 IF( 282 STRSTARTS(?rubriekCode, "480") || 283 STRSTARTS(?rubriekCode, "481") || 284 STRSTARTS(?rubriekCode, "482") || 285 STRSTARTS(?rubriekCode, "483") || 286 STRSTARTS(?rubriekCode, "484") || 287 STRSTARTS(?rubriekCode, "WAfs"), 288 ?geld_bedrag, 0 289 ) AS ?q_vi_bedrag 290 ) 291 292 # --- Q.VII Overige waardevermindering immateriële vaste activa en materiële vaste activa --- 293 # RGS: WWvi (Prismant: niet beschikbaar) 294 BIND(IF(STRSTARTS(?rubriekCode, "WWvi"), ?geld_bedrag, 0) AS ?q_vii_bedrag) 295 296 # --- Q.VIII Bijzondere waardevermindering van vlottende activa --- 297 # RGS: WBwv (Prismant: niet beschikbaar) 298 BIND(IF(STRSTARTS(?rubriekCode, "WBwv"), ?geld_bedrag, 0) AS ?q_viii_bedrag) 299 300 # --- Q.IX Overige bedrijfskosten --- 301 # Prismant: 423/43-47/486/489/905/911-915/921/931 302 # RGS: WBed 303 BIND( 304 IF( 305 STRSTARTS(?rubriekCode, "423") || 306 STRSTARTS(?rubriekCode, "43") || 307 STRSTARTS(?rubriekCode, "44") || 308 STRSTARTS(?rubriekCode, "45") || 309 STRSTARTS(?rubriekCode, "46") || 310 STRSTARTS(?rubriekCode, "47") || 311 STRSTARTS(?rubriekCode, "486") || 312 STRSTARTS(?rubriekCode, "489") || 313 STRSTARTS(?rubriekCode, "905") || 314 STRSTARTS(?rubriekCode, "911") || 315 STRSTARTS(?rubriekCode, "912") || 316 STRSTARTS(?rubriekCode, "913") || 317 STRSTARTS(?rubriekCode, "914") || 318 STRSTARTS(?rubriekCode, "915") || 319 STRSTARTS(?rubriekCode, "921") || 320 STRSTARTS(?rubriekCode, "931") || 321 STRSTARTS(?rubriekCode, "WBed"), 322 ?geld_bedrag, 0 323 ) AS ?q_ix_bedrag 324 ) 325 326 # --- R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten --- 327 # Prismant: 904, RGS: WOvt 328 BIND( 329 IF( 330 STRSTARTS(?rubriekCode, "904") || 331 STRSTARTS(?rubriekCode, "WOvt"), 332 ?geld_bedrag, 0 333 ) AS ?r_i_bedrag 334 ) 335 336 # --- R.II Andere rentebaten en soortgelijke opbrengsten --- 337 # Prismant: 900, RGS: WFbeRlm 338 BIND( 339 IF( 340 STRSTARTS(?rubriekCode, "900") || 341 STRSTARTS(?rubriekCode, "WFbeRlm"), 342 ?geld_bedrag, 0 343 ) AS ?r_ii_bedrag 344 ) 345 346 # --- R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten --- 347 # Prismant: 903, RGS: WWfa 348 BIND( 349 IF( 350 STRSTARTS(?rubriekCode, "903") || 351 STRSTARTS(?rubriekCode, "WWfa"), 352 ?geld_bedrag, 0 353 ) AS ?r_iii_bedrag 354 ) 355 356 # --- R.IV Rentelasten en soortgelijke kosten --- 357 # Prismant: 485/901, RGS: WFbe minus WFbeRlm 358 BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901") || STRSTARTS(?rubriekCode, "WFbe"), ?geld_bedrag, 0) AS ?r_iv_plus_bedrag) 359 BIND(IF(STRSTARTS(?rubriekCode, "WFbeRlm"), ?geld_bedrag, 0) AS ?r_iv_min_bedrag) 360 361 # --- S.I Belastingen --- 362 # RGS: WBel (Prismant: niet beschikbaar) 363 BIND(IF(STRSTARTS(?rubriekCode, "WBel"), ?geld_bedrag, 0) AS ?s_i_bedrag) 364 365 # --- S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen --- 366 # Prismant: 902, RGS: WRed 367 BIND( 368 IF( 369 STRSTARTS(?rubriekCode, "902") || 370 STRSTARTS(?rubriekCode, "WRed"), 371 ?geld_bedrag, 0 372 ) AS ?s_ii_bedrag 373 ) 374 # <<< END BB: BB-005_winst_verlies_posten.rq 375 376 # --- Data detection flags: 1 als de grootboekpost bij het component hoort --- 377 BIND(IF( 378 STRSTARTS(?rubriekCode, "81") || STRSTARTS(?rubriekCode, "82") || STRSTARTS(?rubriekCode, "83") || 379 STRSTARTS(?rubriekCode, "89") || STRSTARTS(?rubriekCode, "919") || STRSTARTS(?rubriekCode, "920") || 380 STRSTARTS(?rubriekCode, "930") || STRSTARTS(?rubriekCode, "WOmz") || STRSTARTS(?rubriekCode, "WBat") || 381 STRSTARTS(?rubriekCode, "WWiv") || STRSTARTS(?rubriekCode, "WOvb"), 382 1, 0) AS ?p_flag) 383 BIND(IF( 384 STRSTARTS(?rubriekCode, "417") || STRSTARTS(?rubriekCode, "418") || 385 STRSTARTS(?rubriekCode, "411") || STRSTARTS(?rubriekCode, "412") || STRSTARTS(?rubriekCode, "413") || 386 STRSTARTS(?rubriekCode, "414") || STRSTARTS(?rubriekCode, "415") || STRSTARTS(?rubriekCode, "416") || 387 STRSTARTS(?rubriekCode, "419") || STRSTARTS(?rubriekCode, "420") || STRSTARTS(?rubriekCode, "4221") || 388 STRSTARTS(?rubriekCode, "4223") || STRSTARTS(?rubriekCode, "4224") || STRSTARTS(?rubriekCode, "4225") || 389 STRSTARTS(?rubriekCode, "4229") || STRSTARTS(?rubriekCode, "4226") || 390 STRSTARTS(?rubriekCode, "480") || STRSTARTS(?rubriekCode, "481") || STRSTARTS(?rubriekCode, "482") || 391 STRSTARTS(?rubriekCode, "483") || STRSTARTS(?rubriekCode, "484") || 392 STRSTARTS(?rubriekCode, "423") || STRSTARTS(?rubriekCode, "43") || STRSTARTS(?rubriekCode, "44") || 393 STRSTARTS(?rubriekCode, "45") || STRSTARTS(?rubriekCode, "46") || STRSTARTS(?rubriekCode, "47") || 394 STRSTARTS(?rubriekCode, "486") || STRSTARTS(?rubriekCode, "489") || STRSTARTS(?rubriekCode, "905") || 395 STRSTARTS(?rubriekCode, "911") || STRSTARTS(?rubriekCode, "912") || STRSTARTS(?rubriekCode, "913") || 396 STRSTARTS(?rubriekCode, "914") || STRSTARTS(?rubriekCode, "915") || STRSTARTS(?rubriekCode, "921") || 397 STRSTARTS(?rubriekCode, "931") || STRSTARTS(?rubriekCode, "WKpr") || STRSTARTS(?rubriekCode, "WPer") || 398 STRSTARTS(?rubriekCode, "WAfs") || STRSTARTS(?rubriekCode, "WWvi") || STRSTARTS(?rubriekCode, "WBwv") || 399 STRSTARTS(?rubriekCode, "WBed"), 400 1, 0) AS ?q_flag) 401 BIND(IF( 402 STRSTARTS(?rubriekCode, "904") || 403 STRSTARTS(?rubriekCode, "900") || 404 STRSTARTS(?rubriekCode, "903") || 405 STRSTARTS(?rubriekCode, "485") || 406 STRSTARTS(?rubriekCode, "901") || 407 STRSTARTS(?rubriekCode, "WOvt") || 408 STRSTARTS(?rubriekCode, "WWfa") || 409 STRSTARTS(?rubriekCode, "WFbe"), 410 1, 0) AS ?r_flag) 411 BIND(IF( 412 STRSTARTS(?rubriekCode, "WBel") || 413 STRSTARTS(?rubriekCode, "902") || 414 STRSTARTS(?rubriekCode, "WRed"), 415 1, 0) AS ?s_flag) 416 417 } 418 } 419 420 # Genereer eindtotalen met berekende formules 421 VALUES (?eindtotaal_type ?jaarrekeningpost) { 422 (1 "P Som der bedrijfsopbrengsten") # P totaal 423 (2 "Q Som der bedrijfslasten") # Q totaal 424 (3 "R Resultaat voor belastingen") # P + Q + R 425 (4 "S Resultaat na belastingen") # R + S 426 } 427 428 # Tel de bedragen op, als er geen data is gebruik dan nul 429 BIND( 430 IF(?eindtotaal_type = 1, COALESCE(?p_totaal, 0), 431 IF(?eindtotaal_type = 2, COALESCE(?q_totaal, 0), 432 IF(?eindtotaal_type = 3, COALESCE(?p_totaal, 0) + COALESCE(?q_totaal, 0) + COALESCE(?r_totaal, 0), 433 IF(?eindtotaal_type = 4, COALESCE(?p_totaal, 0) + COALESCE(?q_totaal, 0) + COALESCE(?r_totaal, 0) + COALESCE(?s_totaal, 0), 434 0)))) AS ?bedrag_rubriek 435 ) 436 437 BIND( 438 IF(?eindtotaal_type = 1, ?p_has_data, 439 IF(?eindtotaal_type = 2, ?q_has_data, 440 IF(?eindtotaal_type = 3, ?p_has_data + ?q_has_data + ?r_has_data, 441 IF(?eindtotaal_type = 4, ?p_has_data + ?q_has_data + ?r_has_data + ?s_has_data, 442 0)))) AS ?heeftData 443 ) 444 445 } 446 UNION 447 { 448 # ======================================================================== 449 # DEEL 2: Individuele jaarrekeningposten uit grootboekdata 450 ## Inclusief een oplossing om lege posten als niet bestaand weer te geven. 451 ## In dit geval via heeftData = 0 en dan in de buitenste select dit weer te geven met een string 452 # Werkt voor Prismant én RGS 453 # ======================================================================== 454 { 455 SELECT 456 ?jaarrekeningpost 457 ?bedrag_rubriek 458 ?heeftData 459 WHERE { 460 { 461 SELECT 462 (SUM(?p_i_bedrag) AS ?p_i_totaal) 463 (SUM(?p_ii_plus_bedrag) AS ?p_ii_plus_totaal) 464 (SUM(?p_ii_min_bedrag) AS ?p_ii_min_totaal) 465 (SUM(?p_iii_bedrag) AS ?p_iii_totaal) 466 (SUM(?p_iv_bedrag) AS ?p_iv_totaal) 467 468 (SUM(?q_i_plus_bedrag) AS ?q_i_plus_totaal) 469 (SUM(?q_i_min_bedrag) AS ?q_i_min_totaal) 470 (SUM(?q_ii_bedrag) AS ?q_ii_totaal) 471 (SUM(?q_iii_bedrag) AS ?q_iii_totaal) 472 (SUM(?q_iii_min_bedrag) AS ?q_iii_min_totaal) 473 (SUM(?q_iv_bedrag) AS ?q_iv_totaal) 474 (SUM(?q_v_bedrag) AS ?q_v_totaal) 475 (SUM(?q_vi_bedrag) AS ?q_vi_totaal) 476 (SUM(?q_vii_bedrag) AS ?q_vii_totaal) 477 (SUM(?q_viii_bedrag) AS ?q_viii_totaal) 478 (SUM(?q_ix_bedrag) AS ?q_ix_totaal) 479 480 (SUM(?r_i_bedrag) AS ?r_i_totaal) 481 (SUM(?r_ii_bedrag) AS ?r_ii_totaal) 482 (SUM(?r_iii_bedrag) AS ?r_iii_totaal) 483 (SUM(?r_iv_plus_bedrag) AS ?r_iv_plus_totaal) 484 (SUM(?r_iv_min_bedrag) AS ?r_iv_min_totaal) 485 486 (SUM(?s_i_bedrag) AS ?s_i_totaal) 487 (SUM(?s_ii_bedrag) AS ?s_ii_totaal) 488 489 (SUM(?p_i_flag) AS ?p_i_has_data) 490 (SUM(?p_ii_flag) AS ?p_ii_has_data) 491 (SUM(?p_iii_flag) AS ?p_iii_has_data) 492 (SUM(?p_iv_flag) AS ?p_iv_has_data) 493 (SUM(?q_i_flag) AS ?q_i_has_data) 494 (SUM(?q_ii_flag) AS ?q_ii_has_data) 495 (SUM(?q_iii_flag) AS ?q_iii_has_data) 496 (SUM(?q_iv_flag) AS ?q_iv_has_data) 497 (SUM(?q_v_flag) AS ?q_v_has_data) 498 (SUM(?q_vi_flag) AS ?q_vi_has_data) 499 (SUM(?q_vii_flag) AS ?q_vii_has_data) 500 (SUM(?q_viii_flag) AS ?q_viii_has_data) 501 (SUM(?q_ix_flag) AS ?q_ix_has_data) 502 (SUM(?r_i_flag) AS ?r_i_has_data) 503 (SUM(?r_ii_flag) AS ?r_ii_has_data) 504 (SUM(?r_iii_flag) AS ?r_iii_has_data) 505 (SUM(?r_iv_flag) AS ?r_iv_has_data) 506 (SUM(?s_i_flag) AS ?s_i_has_data) 507 (SUM(?s_ii_flag) AS ?s_ii_has_data) 508 WHERE { 509 #BIND("2024-01-01"^^xsd:date AS ?startperiode) 510 #BIND("2024-12-31"^^xsd:date AS ?eindperiode) 511 512 ?grootboek_post a onz-fin:Grootboekpost ; 513 onz-g:partOf ?rubriek ; 514 onz-g:hasDate ?datum ; 515 onz-fin:heeftGeldBedrag ?geld_bedrag . 516 517 # Match directe ouder: Grootboekrekening (RGS) of Grootboekrubriek (Prismant) 518 { 519 { ?rubriek a onz-fin:Grootboekrekening } 520 UNION 521 { ?rubriek a onz-fin:Grootboekrubriek } 522 } 523 # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors) 524 FILTER NOT EXISTS { 525 ?grootboek_post onz-g:partOf ?child . 526 ?child onz-g:partOf ?rubriek . 527 FILTER(?child != ?rubriek) 528 { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } } 529 } 530 FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:))) 531 BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode) 532 533 FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode) 534 535 # Parameters voor building block winst_verlies_posten.rq 536 537 # >>> START BB: BB-005_winst_verlies_posten.rq 538 # ============================================================================= 539 # Totaal-niveau: P, Q, R, S 540 # ============================================================================= 541 542 # --- P: Som der bedrijfsopbrengsten --- 543 # Prismant: P.I=81, P.IV=82/83/89/919/920/930 544 # RGS: P.I=WOmz/WBat, P.II = WWiv minus WWivGvp, III=WWivGvp, P.IV=WOvb 545 # voor de som P volstaat het om WWiv hier te zetten want zo wordt WWivGvp ook maar 1x geteld. 546 BIND( 547 IF( 548 STRSTARTS(?rubriekCode, "81") || 549 STRSTARTS(?rubriekCode, "82") || 550 STRSTARTS(?rubriekCode, "83") || 551 STRSTARTS(?rubriekCode, "89") || 552 STRSTARTS(?rubriekCode, "919") || 553 STRSTARTS(?rubriekCode, "920") || 554 STRSTARTS(?rubriekCode, "930") || 555 STRSTARTS(?rubriekCode, "WOmz") || 556 STRSTARTS(?rubriekCode, "WBat") || 557 STRSTARTS(?rubriekCode, "WWiv") || 558 STRSTARTS(?rubriekCode, "WOvb"), 559 ?geld_bedrag, 0) AS ?p_bedrag 560 ) 561 562 # --- Q: Som der bedrijfslasten --- 563 # Q.I RGS: WKpr minus WKprKuw 564 # Q.II: 417/418 (Kosten uitbesteed werk en andere externe kosten), RGS: WKprKuw 565 # Q.III: 411-419 (Lonen en salarissen), RGS: WPer minus WPerSol minus WPerPen 566 # Q.IV: 420/4221/4223-4225/4229 (Sociale lasten), RGS: WPerSol 567 # Q.V: 4226 (Pensioenlasten), RGS: WPerPen 568 # Q.VI: 480-484 (Afschrijvingen op immateriële vaste activa en materiële vaste activa), RGS: WAfs 569 # Q.VII: RGS: WWvi 570 # Q.VIII: RGS: WBwv 571 # Q.IX: 423/43-47/486/489/905/911-915/921/931 (Overige bedrijfskosten), RGS: WBed 572 # ook hier volstaat het voor de som van Q om alleen WPer te noemen zodat WPerSol en WPerPen niet dubbel geteld worden 573 BIND( 574 IF( 575 STRSTARTS(?rubriekCode, "417") || 576 STRSTARTS(?rubriekCode, "418") || 577 STRSTARTS(?rubriekCode, "411") || 578 STRSTARTS(?rubriekCode, "412") || 579 STRSTARTS(?rubriekCode, "413") || 580 STRSTARTS(?rubriekCode, "414") || 581 STRSTARTS(?rubriekCode, "415") || 582 STRSTARTS(?rubriekCode, "416") || 583 STRSTARTS(?rubriekCode, "419") || 584 STRSTARTS(?rubriekCode, "420") || 585 STRSTARTS(?rubriekCode, "4221") || 586 STRSTARTS(?rubriekCode, "4223") || 587 STRSTARTS(?rubriekCode, "4224") || 588 STRSTARTS(?rubriekCode, "4225") || 589 STRSTARTS(?rubriekCode, "4229") || 590 STRSTARTS(?rubriekCode, "4226") || 591 STRSTARTS(?rubriekCode, "480") || 592 STRSTARTS(?rubriekCode, "481") || 593 STRSTARTS(?rubriekCode, "482") || 594 STRSTARTS(?rubriekCode, "483") || 595 STRSTARTS(?rubriekCode, "484") || 596 STRSTARTS(?rubriekCode, "423") || 597 STRSTARTS(?rubriekCode, "43") || 598 STRSTARTS(?rubriekCode, "44") || 599 STRSTARTS(?rubriekCode, "45") || 600 STRSTARTS(?rubriekCode, "46") || 601 STRSTARTS(?rubriekCode, "47") || 602 STRSTARTS(?rubriekCode, "486") || 603 STRSTARTS(?rubriekCode, "489") || 604 STRSTARTS(?rubriekCode, "905") || 605 STRSTARTS(?rubriekCode, "911") || 606 STRSTARTS(?rubriekCode, "912") || 607 STRSTARTS(?rubriekCode, "913") || 608 STRSTARTS(?rubriekCode, "914") || 609 STRSTARTS(?rubriekCode, "915") || 610 STRSTARTS(?rubriekCode, "921") || 611 STRSTARTS(?rubriekCode, "931") || 612 STRSTARTS(?rubriekCode, "WKpr") || 613 STRSTARTS(?rubriekCode, "WPer") || 614 STRSTARTS(?rubriekCode, "WAfs") || 615 STRSTARTS(?rubriekCode, "WWvi") || 616 STRSTARTS(?rubriekCode, "WBwv") || 617 STRSTARTS(?rubriekCode, "WBed"), 618 ?geld_bedrag, 0) AS ?q_bedrag 619 ) 620 621 # --- R: Financiële baten en lasten --- 622 # Prismant: R.I=904, R.II=900, R.III=903, R.IV=485/901 623 # RGS: R.I=WOvt, R.II=WFbeRlm, R.III=WWfa, R.IV=WFbe minus WFbeRlm 624 # voor de som R volstaat het om WFbe hier te zetten want zo wordt WFbeRlm ook maar 1x geteld. 625 BIND( 626 IF( 627 STRSTARTS(?rubriekCode, "904") || 628 STRSTARTS(?rubriekCode, "900") || 629 STRSTARTS(?rubriekCode, "903") || 630 STRSTARTS(?rubriekCode, "485") || 631 STRSTARTS(?rubriekCode, "901") || 632 STRSTARTS(?rubriekCode, "WOvt") || 633 STRSTARTS(?rubriekCode, "WWfa") || 634 STRSTARTS(?rubriekCode, "WFbe"), 635 ?geld_bedrag, 0) AS ?r_bedrag 636 ) 637 638 # --- S: Belastingen en resultaat deelnemingen --- 639 # Prismant: S.II=902 640 # RGS: S.I=WBel, S.II=WRed 641 BIND( 642 IF( 643 STRSTARTS(?rubriekCode, "902") || 644 STRSTARTS(?rubriekCode, "WBel") || 645 STRSTARTS(?rubriekCode, "WRed"), 646 ?geld_bedrag, 0) AS ?s_bedrag 647 ) 648 649 # ============================================================================= 650 # Detail-niveau: P.I t/m S.II 651 # ============================================================================= 652 653 # --- P.I Netto omzet --- 654 # Prismant: 81, RGS: WOmz/WBat 655 BIND( 656 IF( 657 STRSTARTS(?rubriekCode, "81") || 658 STRSTARTS(?rubriekCode, "WOmz") || 659 STRSTARTS(?rubriekCode, "WBat"), 660 ?geld_bedrag, 0 661 ) AS ?p_i_bedrag 662 ) 663 664 # --- P.II Wijziging in voorraden --- 665 # RGS: WWiv minus WWivGpv (Prismant: niet beschikbaar) 666 BIND(IF(STRSTARTS(?rubriekCode, "WWiv"), ?geld_bedrag, 0) AS ?p_ii_plus_bedrag) 667 BIND(IF(STRSTARTS(?rubriekCode, "WWivGpv"), ?geld_bedrag, 0) AS ?p_ii_min_bedrag) 668 669 # --- P.III Geactiveerde productie voor het eigen bedrijf --- 670 # RGS: WWivGpv (Prismant: niet beschikbaar) 671 BIND(IF(STRSTARTS(?rubriekCode, "WWivGpv"), ?geld_bedrag, 0) AS ?p_iii_bedrag) 672 673 # --- P.IV Overige bedrijfsopbrengsten --- 674 # Prismant: 82/83/89/919/920/930, RGS: WOvb 675 BIND( 676 IF( 677 STRSTARTS(?rubriekCode, "82") || 678 STRSTARTS(?rubriekCode, "83") || 679 STRSTARTS(?rubriekCode, "89") || 680 STRSTARTS(?rubriekCode, "919") || 681 STRSTARTS(?rubriekCode, "920") || 682 STRSTARTS(?rubriekCode, "930") || 683 STRSTARTS(?rubriekCode, "WOvb"), 684 ?geld_bedrag, 0 685 ) AS ?p_iv_bedrag 686 ) 687 688 # --- Q.I Kosten van grond- en hulpstoffen --- 689 # RGS: WKpr minus WKprKuw (Prismant: niet beschikbaar) 690 BIND(IF(STRSTARTS(?rubriekCode, "WKpr"), ?geld_bedrag, 0) AS ?q_i_plus_bedrag) 691 BIND(IF(STRSTARTS(?rubriekCode, "WKprKuw"), ?geld_bedrag, 0) AS ?q_i_min_bedrag) 692 693 # --- Q.II Kosten uitbesteed werk en andere externe kosten --- 694 # Prismant: 417/418, RGS: WKprKuw 695 BIND( 696 IF( 697 STRSTARTS(?rubriekCode, "417") || 698 STRSTARTS(?rubriekCode, "418") || 699 STRSTARTS(?rubriekCode, "WKprKuw"), 700 ?geld_bedrag, 0 701 ) AS ?q_ii_bedrag 702 ) 703 704 # --- Q.III Lonen en salarissen --- 705 # Prismant: 411-419, RGS: WPer minus WPerSol minus WPerPen 706 BIND( 707 IF( 708 STRSTARTS(?rubriekCode, "411") || 709 STRSTARTS(?rubriekCode, "412") || 710 STRSTARTS(?rubriekCode, "413") || 711 STRSTARTS(?rubriekCode, "414") || 712 STRSTARTS(?rubriekCode, "415") || 713 STRSTARTS(?rubriekCode, "416") || 714 STRSTARTS(?rubriekCode, "419") || 715 STRSTARTS(?rubriekCode, "WPer"), 716 ?geld_bedrag, 0 717 ) AS ?q_iii_bedrag 718 ) 719 BIND( 720 IF( 721 STRSTARTS(?rubriekCode, "WPerSol") || 722 STRSTARTS(?rubriekCode, "WPerPen"), 723 ?geld_bedrag, 0 724 ) AS ?q_iii_min_bedrag 725 ) 726 727 # --- Q.IV Sociale lasten --- 728 # Prismant: 420/4221/4223-4225/4229, RGS: WPerSol 729 BIND( 730 IF( 731 STRSTARTS(?rubriekCode, "420") || 732 STRSTARTS(?rubriekCode, "4221") || 733 STRSTARTS(?rubriekCode, "4223") || 734 STRSTARTS(?rubriekCode, "4224") || 735 STRSTARTS(?rubriekCode, "4225") || 736 STRSTARTS(?rubriekCode, "4229") || 737 STRSTARTS(?rubriekCode, "WPerSol"), 738 ?geld_bedrag, 0 739 ) AS ?q_iv_bedrag 740 ) 741 742 # --- Q.V Pensioenlasten --- 743 # Prismant: 4226, RGS: WPerPen 744 BIND( 745 IF( 746 STRSTARTS(?rubriekCode, "4226") || 747 STRSTARTS(?rubriekCode, "WPerPen"), 748 ?geld_bedrag, 0 749 ) AS ?q_v_bedrag 750 ) 751 752 # --- Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa --- 753 # Prismant: 480-484, RGS: WAfs 754 BIND( 755 IF( 756 STRSTARTS(?rubriekCode, "480") || 757 STRSTARTS(?rubriekCode, "481") || 758 STRSTARTS(?rubriekCode, "482") || 759 STRSTARTS(?rubriekCode, "483") || 760 STRSTARTS(?rubriekCode, "484") || 761 STRSTARTS(?rubriekCode, "WAfs"), 762 ?geld_bedrag, 0 763 ) AS ?q_vi_bedrag 764 ) 765 766 # --- Q.VII Overige waardevermindering immateriële vaste activa en materiële vaste activa --- 767 # RGS: WWvi (Prismant: niet beschikbaar) 768 BIND(IF(STRSTARTS(?rubriekCode, "WWvi"), ?geld_bedrag, 0) AS ?q_vii_bedrag) 769 770 # --- Q.VIII Bijzondere waardevermindering van vlottende activa --- 771 # RGS: WBwv (Prismant: niet beschikbaar) 772 BIND(IF(STRSTARTS(?rubriekCode, "WBwv"), ?geld_bedrag, 0) AS ?q_viii_bedrag) 773 774 # --- Q.IX Overige bedrijfskosten --- 775 # Prismant: 423/43-47/486/489/905/911-915/921/931 776 # RGS: WBed 777 BIND( 778 IF( 779 STRSTARTS(?rubriekCode, "423") || 780 STRSTARTS(?rubriekCode, "43") || 781 STRSTARTS(?rubriekCode, "44") || 782 STRSTARTS(?rubriekCode, "45") || 783 STRSTARTS(?rubriekCode, "46") || 784 STRSTARTS(?rubriekCode, "47") || 785 STRSTARTS(?rubriekCode, "486") || 786 STRSTARTS(?rubriekCode, "489") || 787 STRSTARTS(?rubriekCode, "905") || 788 STRSTARTS(?rubriekCode, "911") || 789 STRSTARTS(?rubriekCode, "912") || 790 STRSTARTS(?rubriekCode, "913") || 791 STRSTARTS(?rubriekCode, "914") || 792 STRSTARTS(?rubriekCode, "915") || 793 STRSTARTS(?rubriekCode, "921") || 794 STRSTARTS(?rubriekCode, "931") || 795 STRSTARTS(?rubriekCode, "WBed"), 796 ?geld_bedrag, 0 797 ) AS ?q_ix_bedrag 798 ) 799 800 # --- R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten --- 801 # Prismant: 904, RGS: WOvt 802 BIND( 803 IF( 804 STRSTARTS(?rubriekCode, "904") || 805 STRSTARTS(?rubriekCode, "WOvt"), 806 ?geld_bedrag, 0 807 ) AS ?r_i_bedrag 808 ) 809 810 # --- R.II Andere rentebaten en soortgelijke opbrengsten --- 811 # Prismant: 900, RGS: WFbeRlm 812 BIND( 813 IF( 814 STRSTARTS(?rubriekCode, "900") || 815 STRSTARTS(?rubriekCode, "WFbeRlm"), 816 ?geld_bedrag, 0 817 ) AS ?r_ii_bedrag 818 ) 819 820 # --- R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten --- 821 # Prismant: 903, RGS: WWfa 822 BIND( 823 IF( 824 STRSTARTS(?rubriekCode, "903") || 825 STRSTARTS(?rubriekCode, "WWfa"), 826 ?geld_bedrag, 0 827 ) AS ?r_iii_bedrag 828 ) 829 830 # --- R.IV Rentelasten en soortgelijke kosten --- 831 # Prismant: 485/901, RGS: WFbe minus WFbeRlm 832 BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901") || STRSTARTS(?rubriekCode, "WFbe"), ?geld_bedrag, 0) AS ?r_iv_plus_bedrag) 833 BIND(IF(STRSTARTS(?rubriekCode, "WFbeRlm"), ?geld_bedrag, 0) AS ?r_iv_min_bedrag) 834 835 # --- S.I Belastingen --- 836 # RGS: WBel (Prismant: niet beschikbaar) 837 BIND(IF(STRSTARTS(?rubriekCode, "WBel"), ?geld_bedrag, 0) AS ?s_i_bedrag) 838 839 # --- S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen --- 840 # Prismant: 902, RGS: WRed 841 BIND( 842 IF( 843 STRSTARTS(?rubriekCode, "902") || 844 STRSTARTS(?rubriekCode, "WRed"), 845 ?geld_bedrag, 0 846 ) AS ?s_ii_bedrag 847 ) 848 # <<< END BB: BB-005_winst_verlies_posten.rq 849 850 # --- Data detection flags: 1 als de grootboekpost bij het component hoort --- 851 BIND(IF( 852 STRSTARTS(?rubriekCode, "81") || STRSTARTS(?rubriekCode, "WOmz") || 853 STRSTARTS(?rubriekCode, "WBat"), 854 1, 0) AS ?p_i_flag) 855 BIND(IF(STRSTARTS(?rubriekCode, "WWiv"), 1, 0) AS ?p_ii_flag) 856 BIND(IF(STRSTARTS(?rubriekCode, "WWivGpv"), 1, 0) AS ?p_iii_flag) 857 BIND(IF( 858 STRSTARTS(?rubriekCode, "82") || STRSTARTS(?rubriekCode, "83") || 859 STRSTARTS(?rubriekCode, "89") || STRSTARTS(?rubriekCode, "919") || 860 STRSTARTS(?rubriekCode, "920") || STRSTARTS(?rubriekCode, "930") || 861 STRSTARTS(?rubriekCode, "WOvb"), 862 1, 0) AS ?p_iv_flag) 863 BIND(IF(STRSTARTS(?rubriekCode, "WKpr"), 1, 0) AS ?q_i_flag) 864 BIND(IF( 865 STRSTARTS(?rubriekCode, "417") || STRSTARTS(?rubriekCode, "418") || 866 STRSTARTS(?rubriekCode, "WKprKuw"), 867 1, 0) AS ?q_ii_flag) 868 BIND(IF( 869 STRSTARTS(?rubriekCode, "411") || STRSTARTS(?rubriekCode, "412") || 870 STRSTARTS(?rubriekCode, "413") || STRSTARTS(?rubriekCode, "414") || 871 STRSTARTS(?rubriekCode, "415") || STRSTARTS(?rubriekCode, "416") || 872 STRSTARTS(?rubriekCode, "419") || STRSTARTS(?rubriekCode, "WPer"), 873 1, 0) AS ?q_iii_flag) 874 BIND(IF( 875 STRSTARTS(?rubriekCode, "420") || STRSTARTS(?rubriekCode, "4221") || 876 STRSTARTS(?rubriekCode, "4223") || STRSTARTS(?rubriekCode, "4224") || 877 STRSTARTS(?rubriekCode, "4225") || STRSTARTS(?rubriekCode, "4229") || 878 STRSTARTS(?rubriekCode, "WPerSol"), 879 1, 0) AS ?q_iv_flag) 880 BIND(IF( 881 STRSTARTS(?rubriekCode, "4226") || STRSTARTS(?rubriekCode, "WPerPen"), 882 1, 0) AS ?q_v_flag) 883 BIND(IF( 884 STRSTARTS(?rubriekCode, "480") || STRSTARTS(?rubriekCode, "481") || 885 STRSTARTS(?rubriekCode, "482") || STRSTARTS(?rubriekCode, "483") || 886 STRSTARTS(?rubriekCode, "484") || STRSTARTS(?rubriekCode, "WAfs"), 887 1, 0) AS ?q_vi_flag) 888 BIND(IF(STRSTARTS(?rubriekCode, "WWvi"), 1, 0) AS ?q_vii_flag) 889 BIND(IF(STRSTARTS(?rubriekCode, "WBwv"), 1, 0) AS ?q_viii_flag) 890 BIND(IF( 891 STRSTARTS(?rubriekCode, "423") || STRSTARTS(?rubriekCode, "43") || 892 STRSTARTS(?rubriekCode, "44") || STRSTARTS(?rubriekCode, "45") || 893 STRSTARTS(?rubriekCode, "46") || STRSTARTS(?rubriekCode, "47") || 894 STRSTARTS(?rubriekCode, "486") || STRSTARTS(?rubriekCode, "489") || 895 STRSTARTS(?rubriekCode, "905") || STRSTARTS(?rubriekCode, "911") || 896 STRSTARTS(?rubriekCode, "912") || STRSTARTS(?rubriekCode, "913") || 897 STRSTARTS(?rubriekCode, "914") || STRSTARTS(?rubriekCode, "915") || 898 STRSTARTS(?rubriekCode, "921") || STRSTARTS(?rubriekCode, "931") || 899 STRSTARTS(?rubriekCode, "WBed"), 900 1, 0) AS ?q_ix_flag) 901 BIND(IF(STRSTARTS(?rubriekCode, "904") || STRSTARTS(?rubriekCode, "WOvt"), 1, 0) AS ?r_i_flag) 902 BIND(IF(STRSTARTS(?rubriekCode, "900") || STRSTARTS(?rubriekCode, "WFbeRlm"), 1, 0) AS ?r_ii_flag) 903 BIND(IF(STRSTARTS(?rubriekCode, "903") || STRSTARTS(?rubriekCode, "WWfa"), 1, 0) AS ?r_iii_flag) 904 BIND(IF(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901") || STRSTARTS(?rubriekCode, "WFbe"), 1, 0) AS ?r_iv_flag) 905 BIND(IF(STRSTARTS(?rubriekCode, "WBel"), 1, 0) AS ?s_i_flag) 906 BIND(IF(STRSTARTS(?rubriekCode, "902") || STRSTARTS(?rubriekCode, "WRed"), 1, 0) AS ?s_ii_flag) 907 } 908 } 909 910 VALUES (?detail_type ?jaarrekeningpost) { 911 (1 "P.I Netto omzet") 912 (2 "P.II Wijziging in voorraden gereed product en onderhanden werk ten opzichte van de voorafgaande balansdatum") 913 (3 "P.III Geactiveerde productie voor het eigen bedrijf") 914 (4 "P.IV Overige bedrijfsopbrengsten") 915 (5 "Q.I Kosten van grond- en hulpstoffen") 916 (6 "Q.II Kosten uitbesteed werk en andere externe kosten") 917 (7 "Q.III Lonen en salarissen") 918 (8 "Q.IV Sociale lasten") 919 (9 "Q.V Pensioenlasten") 920 (10 "Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa") 921 (11 "Q.VII Overige waardevermindering immateriële vaste activa en materiële vaste activa") 922 (12 "Q.VIII Bijzondere waardevermindering van vlottende activa") 923 (13 "Q.IX Overige bedrijfskosten") 924 (14 "R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten") 925 (15 "R.II Andere rentebaten en soortgelijke opbrengsten") 926 (16 "R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten") 927 (17 "R.IV Rentelasten en soortgelijke kosten") 928 (18 "S.I Belastingen") 929 (19 "S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen") 930 } 931 932 BIND( 933 IF(?detail_type = 1, ?p_i_totaal, 934 IF(?detail_type = 2, ?p_ii_plus_totaal - ?p_ii_min_totaal, 935 IF(?detail_type = 3, ?p_iii_totaal, 936 IF(?detail_type = 4, ?p_iv_totaal, 937 IF(?detail_type = 5, ?q_i_plus_totaal - ?q_i_min_totaal, 938 IF(?detail_type = 6, ?q_ii_totaal, 939 IF(?detail_type = 7, ?q_iii_totaal - ?q_iii_min_totaal , 940 IF(?detail_type = 8, ?q_iv_totaal, 941 IF(?detail_type = 9, ?q_v_totaal, 942 IF(?detail_type = 10, ?q_vi_totaal, 943 IF(?detail_type = 11, ?q_vii_totaal, 944 IF(?detail_type = 12, ?q_viii_totaal, 945 IF(?detail_type = 13, ?q_ix_totaal, 946 IF(?detail_type = 14, ?r_i_totaal, 947 IF(?detail_type = 15, ?r_ii_totaal, 948 IF(?detail_type = 16, ?r_iii_totaal, 949 IF(?detail_type = 17, ?r_iv_plus_totaal - ?r_iv_min_totaal, 950 IF(?detail_type = 18, ?s_i_totaal, 951 IF(?detail_type = 19, ?s_ii_totaal, 952 0 953 ))))))))))))))))))) 954 AS ?bedrag_rubriek 955 ) 956 957 # Bepaal of er data beschikbaar is voor de individuele jaarrekeningpost 958 BIND( 959 IF(?detail_type = 1, IF(?p_i_has_data > 0, 1, 0), 960 IF(?detail_type = 2, IF(?p_ii_has_data > 0, 1, 0), 961 IF(?detail_type = 3, IF(?p_iii_has_data > 0, 1, 0), 962 IF(?detail_type = 4, IF(?p_iv_has_data > 0, 1, 0), 963 IF(?detail_type = 5, IF(?q_i_has_data > 0, 1, 0), 964 IF(?detail_type = 6, IF(?q_ii_has_data > 0, 1, 0), 965 IF(?detail_type = 7, IF(?q_iii_has_data > 0, 1, 0), 966 IF(?detail_type = 8, IF(?q_iv_has_data > 0, 1, 0), 967 IF(?detail_type = 9, IF(?q_v_has_data > 0, 1, 0), 968 IF(?detail_type = 10, IF(?q_vi_has_data > 0, 1, 0), 969 IF(?detail_type = 11, IF(?q_vii_has_data > 0, 1, 0), 970 IF(?detail_type = 12, IF(?q_viii_has_data > 0, 1, 0), 971 IF(?detail_type = 13, IF(?q_ix_has_data > 0, 1, 0), 972 IF(?detail_type = 14, IF(?r_i_has_data > 0, 1, 0), 973 IF(?detail_type = 15, IF(?r_ii_has_data > 0, 1, 0), 974 IF(?detail_type = 16, IF(?r_iii_has_data > 0, 1, 0), 975 IF(?detail_type = 17, IF(?r_iv_has_data > 0, 1, 0), 976 IF(?detail_type = 18, IF(?s_i_has_data > 0, 1, 0), 977 IF(?detail_type = 19, IF(?s_ii_has_data > 0, 1, 0), 978 0))))))))))))))))))) 979 AS ?heeftData 980 ) 981 } 982 } 983 } 984 985 UNION 986 { 987 # ======================================================================= 988 # DEEL 3: Volledige lijst van alle jaarrekeningposten 989 # ======================================================================= 990 BIND(0 AS ?bedrag_rubriek) 991 BIND(0 AS ?heeftData) # Tijdens initieren is het nog onduidelijk of er data voor de rubriek aanwezig is 992 VALUES ?jaarrekeningpost { 993 # P: Som der bedrijfsopbrengsten 994 "P.I Netto omzet" 995 "P.II Wijziging in voorraden gereed product en onderhanden werk ten opzichte van de voorafgaande balansdatum" 996 "P.III Geactiveerde productie voor het eigen bedrijf" 997 "P.IV Overige bedrijfsopbrengsten" 998 "P Som der bedrijfsopbrengsten" 999 # Q: Som der bedrijfslasten 1000 "Q.I Kosten van grond- en hulpstoffen" 1001 "Q.II Kosten uitbesteed werk en andere externe kosten" 1002 "Q.III Lonen en salarissen" 1003 "Q.IV Sociale lasten" 1004 "Q.V Pensioenlasten" 1005 "Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa" 1006 "Q.VII Overige waardevermindering immateriële vaste activa en materiële vaste activa" 1007 "Q.VIII Bijzondere waardevermindering van vlottende activa" 1008 "Q.IX Overige bedrijfskosten" 1009 "Q Som der bedrijfslasten" 1010 # R: Financiële baten en lasten 1011 "R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten" 1012 "R.II Andere rentebaten en soortgelijke opbrengsten" 1013 "R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten" 1014 "R.IV Rentelasten en soortgelijke kosten" 1015 "R Resultaat voor belastingen" 1016 # S: Belastingen en resultaat deelnemingen 1017 "S.I Belastingen" 1018 "S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen" 1019 "S Resultaat na belastingen" 1020 } 1021 } } 1022GROUP BY ?jaarrekeningpost 1023ORDER BY ?jaarrekeningpost